[tox]
envlist = py36, py37, py38, py39
# This version of tox will autoprovision itself and the requirements defined in
# requires if they are not available on the host system.
minversion = 3.8.0
# This version of virtualenv installs a pip version of at least 19.0.1 in its
# venvs.
# Requiring minimally this version of virtualenv to be available prevents the
# need of having to explicitly specify a pip>=19.0 dependency in every testenv.
# pip>=19.0 is needed to ensure the sdist build by tox (which is build
# according to PEP 517 and PEP 518 by tox versions >= 3.4.0) is also installed
# properly (according to PEP 517 and PEP 518 by pip>=19.0) in the virtualenvs.
# If the dependency is not available on the host system, and the installed tox
# version is >= 3.3.0, tox will self bootstrap an environment with the proper
# versions (including the version of tox itself).
requires = virtualenv>=16.3.0
isolated_build = true
# Putting the dist dir in the project directory instead of in the {toxworkdir},
# makes the sdist more easily accesible and prevents the need of rebuilding it
# for the [testenv:build] target.
distdir = {toxinidir}/dist

[testenv]
deps =
    pytest
commands =
    pytest --basetemp="{envtmpdir}" {posargs:--color=yes -v tests}

[testenv:build]
# Force the Python version here, so building will be done with the correct
# Python version. As the distributions are pure Python, there should be no
# difference between the CPython and pypy implementations, so we pick one.
basepython = python3
deps =
commands =
    pip wheel --no-deps -w ./dist .

[flake8]
max-line-length = 120
statistics = True
